A file system includes various procedures and data structures that an operating system uses to track and organize file system objects such as files and directories on disk. The file system may provide support for various file operations such as creating a file, writing to a file, reading a file, deleting a file, copying a file, and so forth.
A distributed file system is an example of a type of file system in which there is a central server storing files that may be accessed over a network by any number of different clients. Distributed file systems can be advantageous because they facilitate distribution of documents to multiple clients. Further, the clients do not have to use their storage resources to store files because the files are stored at a centralized storage system.
It is important for a file system to maintain a consistent state. As discussed, the file system may provide for various data structures to track file system objects. If the file system enters an inconsistent state an organization's data may be lost forever. One of the challenges with distributed file systems is maintaining consistency while also managing concurrent access. Because there can be multiple clients, there is a high likelihood that multiple clients may attempt to access the same file system object. For example, one client may issue an operation request to be performed on a file; and before the file system has a chance to complete the requested operation, another (or the same) client may request another operation on that same file.
These concurrent requests can cause the file system to enter an inconsistent or deadlocked state. For example, if an operation to copy a first file to another second file is in progress when a request to delete the first file is received, the first file may be deleted before the copy operation completes. As a result, the second file may become corrupted. As another example, there may be a concurrent request to copy the second file to the first file while the operation to copy the first file to the second file is still in progress. This situation can lead to a deadlock where the copy operations are stuck waiting for each other to complete.
There is a need for improved systems and techniques to address deadlocking and provide consistency with respect to concurrent file system operations.
The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions. EMC, Data Domain, Data Domain Restorer, and Data Domain Boost are trademarks of EMC Corporation.